﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SRD.Model.SRD.DTO;
using SRD.Model.SRD.Util;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Web.UI.WebControls;
using System.Configuration;

namespace SRD.Model.SRD.DAO
{
    class DespesaTransportePublicoDAO
    {
        DataClassesSRDDataContext bancoDados = new DataClassesSRDDataContext();

        public DespesaTransportePublicoDAO() 
         {
             
         }
                  
        //metodo de busca pelo id da despesa DE comunicação
         public DESPESA_TRANSPORTE_PUBLICO findByID(DESPESA_TRANSPORTE_PUBLICO despesa)
         {
             var resultado = (from d in bancoDados.DESPESA_TRANSPORTE_PUBLICOs
                              where d.DESPESA_ID == despesa.DESPESA_ID
                              select d).First();

             return resultado;
         }

         //metodo para busca completa das despesas ordenado
         public IQueryable findAll()
         {
             var resultado = from d in bancoDados.DESPESA_TRANSPORTE_PUBLICOs
                             select d;

             return resultado;
         }

        // metodo para iserção da despesa
         public string insert(DESPESA_TRANSPORTE_PUBLICO despesa)
         {
             try
             {
                 bancoDados.DESPESA_TRANSPORTE_PUBLICOs.InsertOnSubmit(despesa);
                 bancoDados.SubmitChanges();
                 return "Inclusão realizada com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro na inclusão: " + o.Message;
             }
         }

         // metodo para atualização da despesa
         public string update(DESPESA_TRANSPORTE_PUBLICO despesa)
         {
             try
             {
                 var despesaExistente = (from d in bancoDados.DESPESA_TRANSPORTE_PUBLICOs
                                         where d.DESPESA_ID == despesa.DESPESA_ID
                                         select d).First();
                 despesaExistente = despesa;
                 bancoDados.SubmitChanges();
                 return "Atualização realizada com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro na atualização: " + o.Message;
             }
         }

        // metodo para remoção da despesa
         public string delete(DESPESA_TRANSPORTE_PUBLICO despesa)
         {
             try
             {
                 var despesaExitente = (from d in bancoDados.DESPESA_TRANSPORTE_PUBLICOs
                                        where d.DESPESA_ID == despesa.DESPESA_ID
                                        select d).First();
                 DESPESA_TRANSPORTE_PUBLICO desp = despesaExitente;
                 bancoDados.DESPESA_TRANSPORTE_PUBLICOs.DeleteOnSubmit(desp);
                 bancoDados.SubmitChanges();
                 return "Registro excluído com sucesso!";
             }
             catch (Exception o)
             {
                 return "Houve erro ao excluir: " + o.Message;
             }
         }
    }
}
